<?php
/***************************************************************************
 * 
 * Copyright (c) 2010 , Inc. All Rights Reserved
 * $Id$ 
 * 
 **************************************************************************/
 
 
 
/**
 * @file ValidationExceptionTest.php
 * @author niulei(niulei@)
 * @date 2010/05/17 18:58:28
 * @version $Revision$ 
 * @brief 
 *  
 **/
require_once 'PHPUnit/Framework/TestCase.php';
require_once 'validate/Validation.php';

class ValidationExceptionTest extends PHPUnit_Framework_TestCase{

    protected function setUp()
    {			
       sleep(1);
    }
    
    public function testFuncNotDefined(){
    	$arr_rules = array(
    	                    //'func' => Validation::STRING,
    	                    'flag' => array(
    	                                    'FLAG_ALLOW_EMPTY',
                                            'FLAG_CASE_IGNORE'
                                           ),
                            'min_range'=>1,//最小长度
                            'max_range'=>2,//最大长度
                            'value_array'=>array('test1','test2','test3'),//可选值
                            'encode'=>'gbk'|'utf-8',//可选编码，不设置按gbk处理
                            //'reg_exp'=>[可输入一个PHP支持的正则表达式],
                            'length_array'=>array(2,3,5),//可选长度值
                            'byte_length'=>true|false,//是否按字节长度处理，不设置不采用字节长度处理
    	                   );
        $input = "中华人民共和国sssssss";
        try{
            Validation::check($input,$arr_rules);
        }catch (Exception $e){
       	    $this->assertContains("FuncNotDefined", $e->getMessage());
        }
    }
 
    public function testFuncNotExist(){
    	$arr_rules = array(
    	                    'func' => 'stringXXX',
    	                    'flag' => array(
    	                                    'FLAG_ALLOW_EMPTY',
                                            'FLAG_CASE_IGNORE'
                                           ),
                            'min_range'=>1,//最小长度
                            'max_range'=>2,//最大长度
                            'value_array'=>array('test1','test2','test3'),//可选值
                            'encode'=>'gbk'|'utf-8',//可选编码，不设置按gbk处理
                            //'reg_exp'=>[可输入一个PHP支持的正则表达式],
                            'length_array'=>array(2,3,5),//可选长度值
                            'byte_length'=>true|false,//是否按字节长度处理，不设置不采用字节长度处理
    	                   );
        $input = "中华人民共和国sssssss";
        try{
            Validation::check($input,$arr_rules);
        }catch (Exception $e){
       	    $this->assertContains("FuncNotExist", $e->getMessage());
        }
    }
    
    public function testFuncNotSupportArray(){
    	$arr_rules = array(
    	                    'func' => array('STRING','IDNUM'),
    	                    'flag' => array(
    	                                    'FLAG_ALLOW_EMPTY',
                                            'FLAG_CASE_IGNORE'
                                           ),
                            'min_range'=>1,//最小长度
                            'max_range'=>2,//最大长度
                            'value_array'=>array('test1','test2','test3'),//可选值
                            'encode'=>'gbk'|'utf-8',//可选编码，不设置按gbk处理
                            //'reg_exp'=>[可输入一个PHP支持的正则表达式],
                            'length_array'=>array(2,3,5),//可选长度值
                            'byte_length'=>true|false,//是否按字节长度处理，不设置不采用字节长度处理
    	                   );
        $input = "中华人民共和国sssssss";
        try{
            Validation::check($input,$arr_rules);
        }catch (Exception $e){
       	    $this->assertContains("FuncNotSupportArray", $e->getMessage());
        }
    }
    
    public function testFlagNotExist(){
    	$arr_rules = array(
    	                    'func' => 'STRING',
    	                    'flag' => array(
    	                                    'FLAG_ALLOW_EMPTY',
                                            'FLAG_CASE_IGNORE',
                                            122,
                                           ),
                            'min_range'=>1,//最小长度
                            'max_range'=>2,//最大长度
                            'value_array'=>array('test1','test2','test3'),//可选值
                            'encode'=>'gbk'|'utf-8',//可选编码，不设置按gbk处理
                            //'reg_exp'=>[可输入一个PHP支持的正则表达式],
                            'length_array'=>array(2,3,5),//可选长度值
                            'byte_length'=>true|false,//是否按字节长度处理，不设置不采用字节长度处理
    	                   );
        $input = "中华人民共和国sssssss";
        try{
            Validation::check($input,$arr_rules);
        }catch (Exception $e){
       	    $this->assertContains("FlagNotExist", $e->getMessage());
        }
    }
}
?>
